#include "include/comment.h"
#include "include/clock.h"
#include "include/config.h"

static CLOCKMSG *clock_msg;

void time_install(const void *addr)
{	
	clock_msg  = (CLOCKMSG *)addr;
	clock_msg -> src_data = 0;
	clock_msg -> s = 0;
	clock_msg -> m = 0;
	clock_msg -> h = 0;

	puts_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL, "00:00:00");
}

void time_run()
{
	int k = 0; //	调位标志
	
	//	秒钟处理
	if((clock_msg -> src_data) >= 100)
	{
		if(++(clock_msg -> s) < 10)
		{
			k = 1;
		}
		puti_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL + 6 + k, clock_msg -> s);
		(clock_msg -> src_data) = 0;
		k = 0;

		//	分钟处理
		if((clock_msg -> s) >= 60)
		{	
		
			if(++(clock_msg -> m) < 10)
			{
				k = 1;
			}
			puti_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL + 3 + k, clock_msg -> m);
			(clock_msg -> s) = 0;
			puts_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL + 6, "00");
			k = 0;

			//	时钟处理
			if((clock_msg -> m) >= 60)
			{
				if(++(clock_msg -> h) < 10)
				{
					k = 1;
				}
				puti_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL + k, clock_msg -> h);
				(clock_msg -> h) = 0;
				puts_ex(CLOCKSHOW_ADDRH, CLOCKSHOW_ADDRL + 3, "00");
			}
		}
	}
}
